package com.zero.business.member.controller;


import com.zero.business.member.service.MemberService;
import com.zero.common.domain.Result;
import com.zero.domain.Member;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;

@RestController
@RequestMapping("member")
public class MemberController {

    @Resource
    private MemberService memberService;

    /*
    *   会员充值
    * */
    @PostMapping("recharge")
    public Result recharge(Integer userId, BigDecimal money){
        if (money.intValue() <= 0) {
            return Result.error(200,"充值金额必须大于0元");
        }

        memberService.recharge(userId,money);

        return Result.success("充值成功");
    }


    /*
    *   根据 userId 获取会员数据         被 订单模块 远程调用 的接口
    * */
    @GetMapping("selectByPrimaryKey")
    public Member selectByPrimaryKey(Integer userId){

        return memberService.selectByPrimaryKey(userId);

    }


    /*
     *   1.更新会员状态为使用中的状态  statue=1        被 订单模块 远程调用 的接口
     *   2.更新会员的状态(statue=1 --> status=0)、充值金额、积分                      被 订单模块 远程调用 的接口
     * */
    @PutMapping("updateByPrimaryKeySelective")
    public void updateByPrimaryKeySelective(Integer userId, String status, BigDecimal money, Integer score, String remark){
        // 创建会员对象，设置 userid 和 status
        Member member = Member.builder()
                .userId(userId)
                .status(Integer.parseInt(status))     // 状态
                .money(money)   // 充值金额
                .score(score)                   // 积分
                .updateBy("admin")
                .updateTime(new Date())
                .remark(remark)
                .build();

        // 更新
        memberService.updateByPrimaryKeySelective(member);

    }


}
